#include <stdio.h>

/*例4.18：n元钱买n只鸡。
          经典的百钱买百鸡问题是：公鸡五文钱一只，母鸡三文钱一只，鸡仔一文钱三只，
          用100文钱买100只鸡，公鸡、母鸡、鸡仔各买多少只？
本程序要求解的问题是：给定一个正整数n，用n文钱买n只鸡，问公鸡、母鸡、鸡仔各买多少只？
            如果问题有解，输出所有解，每个解占一行，每个整数用空格隔开；如果问题无解，则输出” No answer”。
*/
int main() {
    int n;
    printf("请输入正整数n：");
    scanf("%d", &n);

    int found = 0; // 用于标记是否找到解
    // 公鸡、母鸡、鸡仔的最大数量
    for (int roosters = 0; roosters <= n / 5; roosters++) {
        for (int hens = 0; hens <= n / 3; hens++) {
            int chicks = n - roosters - hens; // 鸡仔数量
            if (chicks < 0 || chicks % 3 != 0) continue; // 鸡仔数量必须为非负且能被3整除
            int cost = roosters * 5 + hens * 3 + chicks / 3; // 计算总花费
            if (cost == n) {
                printf("%d %d %d\n", roosters, hens, chicks);
                found = 1; // 找到解
            }
        }
    }

    if (found==0) {
        printf("No answer\n");
    }

    return 0;
}
